Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

474
Visualizações
jQuery $("#radioButton").change(...) no se activa durante la deselección

Hace aproximadamente un mes, la pregunta de Mitt quedó sin respuesta. Lamentablemente, estoy corriendo en la misma situación ahora.

http://api.jquery.com/change/#comment-133939395

Aquí está la situación: estoy usando jQuery para capturar los cambios en un botón de opción. Cuando se selecciona el botón de radio, habilito un cuadro de edición. Cuando el botón de opción no está seleccionado, me gustaría que el cuadro de edición esté deshabilitado.

Las obras de habilitación. Cuando elijo un botón de opción diferente en el grupo, el evento de change no se activa. ¿Alguien sabe cómo arreglar esto?

 <input type="radio" id="r1" name="someRadioGroup"/> <script type="text/javascript"> $("#r1").change(function () { if ($("#r1").attr("checked")) { $('#r1edit:input').removeAttr('disabled'); } else { $('#r1edit:input').attr('disabled', true); } }); </script>
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Parece que la función de change() solo se llama cuando marca un botón de opción, no cuando lo desmarca. La solución que utilicé es vincular el evento de cambio a cada botón de opción:

 $("#r1, #r2, #r3").change(function () {

O podría dar a todos los botones de radio el mismo nombre:

 $("input[name=someRadioGroup]:radio").change(function () {

Aquí hay un ejemplo de jsfiddle que funciona (actualizado del comentario de Chris Porter).

Según el comentario de @Ray, debe evitar usar nombres con . en ellos. Esos nombres funcionan en jQuery 1.7.2 pero no en otras versiones ( ejemplo de jsfiddle ).

over 4 years ago · Santiago Trujillo Relatório

0

<input id='r1' type='radio' class='rg' name="asdf"/> <input id='r2' type='radio' class='rg' name="asdf"/> <input id='r3' type='radio' class='rg' name="asdf"/> <input id='r4' type='radio' class='rg' name="asdf"/><br/> <input type='text' id='r1edit'/>

parte jquery

 $(".rg").change(function () { if ($("#r1").attr("checked")) { $('#r1edit:input').removeAttr('disabled'); } else { $('#r1edit:input').attr('disabled', 'disabled'); } });

aqui esta la DEMO

over 4 years ago · Santiago Trujillo Relatório

0

Puede enlazar a todos los botones de radio a la vez por nombre:

 $('input[name=someRadioGroup]:radio').change(...);

Ejemplo de trabajo aquí: http://jsfiddle.net/Ey4fa/

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda